<?php
/****************************************************************************
 * @function：这个页面是用来做只有训练方式的页面
 * 下面的参数定义，就是从only_train.php传过来的值
 ***************************************************************************/
include "chooseOneStock.php";
// 全局变量
$train_fenxi = array();  // 训练的指标
$history = array();     // 记录历史明细
$AllHistory = array();  // 历史明细
$AllLineChart = array(); // 折线图
$AllBingTu = array();    // 饼状图
$AllarrayCalDay = array(); // 指标计算
$bing_json_string;   // 饼状图

// 参数定义
@$orderRule = $_REQUEST["order"];        // 排序规则
@$HoldLimit = $_REQUEST["holdlimit"];  // 持股上限
@$Sta_Test = $_REQUEST["sta_test"];    // 测试集开始时间

//  小时线的 时间戳 处理
// var_dump($Sta_Test);
// $timestamp = strtotime($Sta_Test);
// 2015-09-11T15:00
// echo $timestamp."<br>";  // prints: 1340374015
// echo date("Y-m-d H:i:s",$timestamp);
// exit(0);


@$End_Test = $_REQUEST["end_test"];       // 测试集结束时间
@$DayBuy = $_REQUEST["one_buy"];       // 单日买入数
@$KeepHoldProfit = $_REQUEST["zhi_ying_rate"];       // 止盈收益率
@$HighestFall = $_REQUEST["max_huiluo"];       // 最大回落
@$StopLoseProfit = $_REQUEST["zhi_Sun"];       // 止损收益率
@$source = $_REQUEST["holdtime"];
//利用 explode 函数分割字符串到数组
$holdtime = explode(',', $source);
$hold_time_array = array();            // 持股周期
for ($index = 0; $index < count($holdtime); $index++) {
    array_push($hold_time_array, intval($holdtime[$index]));
}
@$compareWay = $_REQUEST["compareWay"];    // 指数


/*************************下面是根据input的信息进行回测**************** */
if ($Sta_Test != null && $End_Test != null) {  // 时间不为空
    $hold_time_count = count($hold_time_array); // 持股周期
    for ($i = 0; $i < $hold_time_count; $i++) {
        $One_HoldLimit_Trade = oneActionMore(     // 每一种持股周期下的一次所有交易
            $Sta_Test,
            $End_Test,
            $hold_time_array[$i],
            $HoldLimit,
            $DayBuy,
            $KeepHoldProfit,
            $HighestFall,
            $StopLoseProfit,
            $orderRule,
            NULL  // 没有剩余持股量
        );  
        //var_dump($One_HoldLimit_Trade);
        // 计算指标  判空
        if($One_HoldLimit_Trade != null){
            //var_dump($One_HoldLimit_Trade);
            // var_dump($Sta_Test);
            // var_dump($End_Test);
            $calDay  = calculate_caption($One_HoldLimit_Trade,$HoldLimit,$Sta_Test,$End_Test,null);
            $calDay = $calDay["one"];
            //var_dump($calDay);
            foreach ($calDay as $key => $value) {
                $a = array((int)(strtotime($key) * 1000), $value);
                $b[] = $a;
            }
            $arrayCalDay = array("day:$hold_time_array[$i]" => $b);
            $b = (array)null;  // *清空数组
            array_push($AllarrayCalDay, $arrayCalDay);  // 保存到大数组
            $trade_analysis = calTarget($One_HoldLimit_Trade, $hold_time_array[$i],$HoldLimit,$Sta_Test,$End_Test,null);
            array_push($train_fenxi, $trade_analysis);   // 将所有的分析结果保存
            // 计算折线图指标
            $LineChart = calForLinechart($One_HoldLimit_Trade);
            $LineChartTemp = array("day:$hold_time_array[$i]" => $LineChart);
            array_push($AllLineChart, $LineChartTemp);
            // 计算饼图
            $BingTu = calNumOfUpdownRate($One_HoldLimit_Trade);
            $xx = array("day:$hold_time_array[$i]" => $BingTu);
            array_push($AllBingTu, $xx);

            // 计算历史明细
            $history = array("day:$hold_time_array[$i]" => $One_HoldLimit_Trade);
            array_push($AllHistory, $history);
        }
        
    }
    // 历史明细的文件
    $his_json_string  = json_encode($AllHistory);
    // 饼状图
    $bing_json_string  = json_encode($AllBingTu);
    // 折线图
    $AllLineChart2 = $AllarrayCalDay;
    if ($compareWay != NULL)
        $zhishu = zhishuData($compareWay, $Sta_Test, $End_Test);
    @$zhishutemp = array("zhishu" => $zhishu);
    array_push($AllLineChart2, $zhishutemp);   // 将指标曲线添加到折线图中
    $line_json_string  = json_encode($AllLineChart2);
}
